Apache Hive প্রধানত Hadoop ইকোসিস্টেমে কাজ করে এবং এর মাধ্যমে ডেটা বিশ্লেষণ করা হয়। তবে অনেক সময় আমরা External Data Sources থেকে ডেটা আনার প্রয়োজনীয়তা অনুভব করি। Hive ব্যবহারকারীদের বিভিন্ন External Data Sources থেকে ডেটা আনার জন্য সুবিধা প্রদান করে। এগুলির মধ্যে রয়েছে HBase, MySQL, JDBC, CSV, Parquet, Avro, এবং আরও অনেক ফাইল ফরম্যাট। Hive বিভিন্ন ধরনের ফাইল ফরম্যাট এবং ডেটা স্টোরেজ সিস্টেমের সাথে ইন্টিগ্রেট হতে সক্ষম, যা Hadoop-এর ক্ষমতা আরও বৃদ্ধি করে।
External Data Sources থেকে Data Fetch করার জন্য Hive এর ব্যবহার
১. HBase থেকে Data Fetch করা
HBase হল একটি ডিস্ট্রিবিউটেড NoSQL ডেটাবেস যা সাধারণত প্রক্রিয়াজাত ডেটা সংরক্ষণ এবং দ্রুত অ্যাক্সেসের জন্য ব্যবহৃত হয়। Hive ব্যবহারকারীদের HBase-এ সংরক্ষিত ডেটা Hive External Table এর মাধ্যমে সহজেই অ্যাক্সেস করতে সাহায্য করে। HBase থেকে ডেটা নিয়ে Hive-এ বিশ্লেষণ করতে, Hive HBase Storage Handler ব্যবহার করে।
HBase থেকে Data Fetch করার উদাহরণ
CREATE EXTERNAL TABLE hbase_table(
id INT,
name STRING,
age INT)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf:name,cf:age")
TBLPROPERTIES ("hbase.table.name" = "hbase_data");
এই কুয়েরি HBase থেকে ডেটা টেনে নিয়ে Hive-এর একটি এক্সটার্নাল টেবিল তৈরি করে।
২. Relational Databases (RDBMS) থেকে Data Fetch করা
Hive JDBC ব্যবহার করে MySQL, PostgreSQL, Oracle ইত্যাদি রিলেশনাল ডেটাবেস থেকে ডেটা টেনে আনতে পারে। Hive-এর JDBC কনেক্টর ব্যবহার করে আপনি SQL-অনুরূপ কুয়েরি চালিয়ে বিভিন্ন রিলেশনাল ডেটাবেস থেকে ডেটা সংগ্রহ করতে পারবেন।
MySQL থেকে Data Fetch করার উদাহরণ
CREATE EXTERNAL TABLE mysql_table(
id INT,
name STRING,
salary FLOAT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED BY 'org.apache.hadoop.hive.jdbc.storagehandler.JdbcStorageHandler'
WITH SERDEPROPERTIES (
"serialization.lib"="org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
"serialization.encoding"="UTF-8")
TBLPROPERTIES (
"hive.sql.database"="jdbc:mysql://localhost:3306/dbname",
"hive.sql.username"="root",
"hive.sql.password"="password",
"hive.sql.driver"="com.mysql.jdbc.Driver",
"hive.sql.table"="employee");
এই কুয়েরি MySQL ডেটাবেস থেকে employee টেবিলের ডেটা Hive-এ আনবে।
৩. CSV এবং অন্যান্য ফাইল ফরম্যাট থেকে Data Fetch করা
Hive এক্সটার্নাল টেবিল ব্যবহার করে CSV, JSON, Parquet, ORC, Avro এবং অন্যান্য বিভিন্ন ফাইল ফরম্যাট থেকে ডেটা ইম্পোর্ট করতে সক্ষম। এটি Hadoop এর HDFS-এ স্টোর করা ফাইলগুলো থেকে ডেটা সহজে সংগ্রহ করতে সাহায্য করে। Hive এই ফাইলগুলোর জন্য বিভিন্ন Serde (Serializer/Deserializer) ব্যবহার করে ডেটাকে প্রক্রিয়া করে।
CSV ফাইল থেকে Data Fetch করার উদাহরণ
CREATE EXTERNAL TABLE csv_table(
id INT,
name STRING,
age INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION 'hdfs://localhost:9000/user/hive/data/csv_data';
এই কুয়েরি HDFS-এ থাকা csv_data নামক ফোল্ডার থেকে CSV ফাইলের ডেটা Hive-এ লোড করবে।
৪. Parquet এবং Avro ফরম্যাট থেকে Data Fetch করা
Parquet এবং Avro হল কলাম-অরিয়েন্টেড ফাইল ফরম্যাট যা বড় ডেটাসেটের জন্য পারফরম্যান্স এবং সঞ্চয়ের দিক থেকে বেশ কার্যকর। Hive এই ফরম্যাট থেকে ডেটা ফেচ করতে পারে, যা দ্রুত ডেটা প্রক্রিয়াকরণের জন্য সাহায্য করে।
Parquet ফরম্যাট থেকে Data Fetch করার উদাহরণ
CREATE EXTERNAL TABLE parquet_table(
id INT,
name STRING,
salary FLOAT)
STORED AS PARQUET
LOCATION 'hdfs://localhost:9000/user/hive/data/parquet_data';
এই কুয়েরি Hive-এ Parquet ফাইল থেকে ডেটা লোড করবে।
Avro ফরম্যাট থেকে Data Fetch করার উদাহরণ
CREATE EXTERNAL TABLE avro_table(
id INT,
name STRING,
salary FLOAT)
STORED AS AVRO
LOCATION 'hdfs://localhost:9000/user/hive/data/avro_data';
এই কুয়েরি Hive-এ Avro ফরম্যাটের ডেটা ফেচ করবে।
Hive External Data Sources এর উপকারিতা
- বিভিন্ন ডেটা সোর্সের সাথে ইন্টিগ্রেশন: Hive ব্যবহারকারীরা বিভিন্ন ধরনের ডেটা সোর্স যেমন HBase, MySQL, CSV, Avro, Parquet ইত্যাদি থেকে সহজেই ডেটা ফেচ করতে পারে।
- বড় ডেটাসেটের দ্রুত বিশ্লেষণ: Hive বড় পরিসরের ডেটাসেট দ্রুত প্রক্রিয়া করতে সক্ষম, বিশেষত Hadoop এবং HDFS ব্যবহার করার ফলে।
- কাস্টমাইজড ডেটা ইনপুট: বিভিন্ন ফরম্যাটের ফাইল বা রিলেশনাল ডেটাবেসের ডেটাকে এক্সটার্নাল টেবিলের মাধ্যমে সহজেই Hive-এ লোড করা সম্ভব।
- এগজিস্টিং ডেটা সোর্সে ডেটার অ্যাক্সেস: Hive ডেটা ফেচ করার সময় আপনাকে উৎস ডেটাবেস বা ফাইল সিস্টেমে কোনো ডেটা কপি করতে হয় না, এটি এক্সটার্নাল সোর্স থেকেই ডেটা অ্যাক্সেস করতে সক্ষম।
উপসংহার
Hive ব্যবহারকারীদের বিভিন্ন External Data Sources থেকে ডেটা ফেচ করার জন্য শক্তিশালী এবং নমনীয় পদ্ধতি প্রদান করে। Hive External Tables-এর মাধ্যমে আপনি সহজেই HBase, RDBMS, CSV, Parquet, Avro, এবং অন্যান্য ফাইল ফরম্যাট থেকে ডেটা ইম্পোর্ট করতে পারেন। এটি Hadoop এবং Hive-এর ক্ষমতা কাজে লাগিয়ে বড় ডেটাসেটের উপর দ্রুত বিশ্লেষণ করতে সহায়তা করে।
Read more